package com.tbit.uqbike.service.business;

import com.tbit.uqbike.object.pojo.dto.AccountDayStatFinancialDTO;
import com.tbit.uqbike.object.pojo.dto.DownloadAllStatDetailDTO;
import com.tbit.uqbike.object.pojo.vo.*;

import java.util.List;

/**
 * 财务总览统计
 *
 * @Author:yanlun
 * @DATE: 2022/11/18
 */
public interface AccountDayStatFinancialService {


    AccountDayStatMerchantFinancialVo financeMerchantPlatform(AccountDayStatFinancialDTO accountDayStatFinancialDTO, boolean byDay);

    AccountDayStatOperateVo operateFinancial(AccountDayStatFinancialDTO accountDayStatFinancialDTO, boolean byDay);

    AccountDayStatBalanceVo balanceFinancial(AccountDayStatFinancialDTO accountDayStatFinancialDTO, boolean byDay);

    AccountDayStatDepositVo depositFinancial(AccountDayStatFinancialDTO accountDayStatFinancialDTO, boolean byDay);

    AccountDayStatOtherVo otherFinancial(AccountDayStatFinancialDTO accountDayStatFinancialDTO, boolean byDay);

    AccountDayStatGiftCardVO giftCardFinancial(AccountDayStatFinancialDTO accountDayStatFinancialDTO, boolean byDay);

    AccountDayStatFictitiousVo fictitiousFinancial(AccountDayStatFinancialDTO accountDayStatFinancialDTO, boolean byDay);

    AccountDayStatArrearsVo arrearsFinancial(AccountDayStatFinancialDTO accountDayStatFinancialDTO, boolean byDay);

    AccountDayStatTotalVO totalFinancial(AccountDayStatFinancialDTO accountDayStatFinancialDTO);

    String lastDataTime(Integer brandId, List<Integer> accountIds);

    String download(AccountDayStatFinancialDTO downloadDTO, Class clazz, boolean byDay);

    String downloadTotalFinancial(AccountDayStatFinancialDTO accountDayStatFinancialDTO);

    String financialSummaryDownload(AccountDayStatFinancialDTO accountDayStatFinancialDTO);


    String downloadAllStatDetail(DownloadAllStatDetailDTO downloadDTO);
}
